Skip to content

Let dependabot maintain the seed workflows too - #66

Open
jeremy wants to merge 1 commit into
mainfrom
seed-workflows-dependabot
Open

Let dependabot maintain the seed workflows too#66
jeremy wants to merge 1 commit into
mainfrom
seed-workflows-dependabot

Conversation

@jeremy

@jeremy jeremy commented Aug 21, 2026

Copy link
Copy Markdown
Member

Closes the drift Copilot spotted on #63, at the source rather than by syncing copies.

prompts/seed-cli.md copies seed/.github/workflows/* verbatim into every generated CLI, but Dependabot only ever saw the root, so the templates fell behind our own workflows:

live  .github/workflows/test.yml:  actions/checkout v7.0.1   actions/setup-go v7.0.0
seed  .github/workflows/test.yml:  actions/checkout v6.0.2   actions/setup-go v6.3.0

Why directories works here

GitHub's option reference says "For GitHub Actions, use the value /", which reads like a restriction — it isn't; it describes the root case. dependabot-core's github_actions/file_fetcher.rb branches on it:

if directory == "/"
  workflows_dir = WORKFLOW_DIRECTORY   # ".github/workflows"
else
  workflows_dir = "."                  # the directory itself is scanned for *.yml
end

and its own spec covers the non-root case directly:

context "when an explicit directory is given" do
  let(:directory) { "/.github/workflows" }
  it "fetches the workflow files relatively to the directory" do

So the entry has to name the workflows directory itself. "/seed" would scan seed/*.yml and match nothing, which is probably why this looks unsupported at a glance.

Why this rather than a sync check

The obvious alternatives are a CI check that seed pins equal live pins, or generating the seed from the live workflows. Both are worse: the first adds friction to every action bump forever, the second is a rewrite. Letting the updater own the files costs two lines and no ongoing work — the seed group will simply appear in the weekly grouped PR alongside the root one.

Severity, honestly

Low. seed/.github/dependabot.yml is itself copied into generated projects and configures github-actions weekly, so a new CLI catches up on its first run — the stale window is bounded, not permanent. And neither lagging pin (checkout v6.0.2, setup-go v6.3.0) carries a known advisory. This is about not shipping a stale starting point, not about exposure.

zizmor --collect=all is clean across the tree, seed workflows included. No workflow behaviour changes here — only which files Dependabot looks at.

prompts/seed-cli.md copies seed/.github/workflows/* verbatim into every
generated CLI, but dependabot only saw the root, so those templates
drifted: checkout v6.0.2 and setup-go v6.3.0 against v7.0.1 and v7.0.0
in our own workflows. Every new CLI started on that older set.

Adding the path to directories: fixes it at the source rather than by
syncing the copies. The docs' 'for GitHub Actions, use the value /'
describes the root case; dependabot-core branches on it, and a non-root
entry is scanned directly for *.yml -- which is tested upstream with
directory: /.github/workflows. Hence the path is the workflows directory
itself; /seed alone would scan seed/*.yml and match nothing.

Not urgent on its own: the seed also ships .github/dependabot.yml, so a
generated project catches up on its first weekly run, and neither
lagging pin carries an advisory. This just stops shipping a stale
starting point.
Copilot AI balanced review requested due to automatic review settings August 21, 2026 06:54
@github-actions github-actions Bot added the ci label Aug 21, 2026

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Extends Dependabot’s GitHub Actions updates to include seed workflow templates, preventing generated CLIs from starting with stale action versions.

Changes:

  • Replaces the single root directory with root and seed workflow directories.
  • Documents Dependabot’s non-root workflow scanning behavior.

Tip

If you aren't ready for review, convert to a draft PR.
Click "Convert to draft" or run gh pr ready --undo.
Click "Ready for review" or run gh pr ready to reengage.


💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants